﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using APA_DAO;
using TAM_SPORT;
using DAO;

namespace AMS
{
    public partial class FrmThuTienHist : Form
    {
        public FrmThuTienHist()
        {
            InitializeComponent();
        }
        private int soHopDong;
        public FrmThuTienHist(string roomNumber, string cusName, int soHopDong)
        {
            InitializeComponent();
            loadGrid(soHopDong);
            txtRoomNumber.Text = roomNumber;
            txtCusName.Text = cusName;
            this.soHopDong = soHopDong;
            dtgDetails.ColumnHeadersDefaultCellStyle.BackColor = Color.LightSkyBlue;
            dtgDetails.GridColor = Color.BurlyWood;
            dtgDetails.EnableHeadersVisualStyles = false;
            this.BackColor = Color.LightCyan;
        }

        private void loadGrid(int id)
        {
            dtgDetails.Rows.Clear();
            ThuePhongDao dao = new ThuePhongDao();
            DataTable table = dao.getCustomerHist(id);
            if (table != null)
            {
                int i = 0;
                float total = 0;
                foreach (DataRow row in table.Rows)
                {
                    total = 0;
                    total += float.Parse(row["TIEN_NUOC"].ToString());
                    total += float.Parse(row["TIEN_DIEN"].ToString());
                    total += float.Parse(row["TIEN_PHONG"].ToString());
                    total += float.Parse(row["TIEN_PHU_THU"].ToString());

                    i = dtgDetails.Rows.Add();
                    dtgDetails.Rows[i].Cells[0].Value = i+1;
                    dtgDetails.Rows[i].Cells[1].Value = DateTime.Parse(row["NGAY_THU"].ToString()).ToString("dd/MM/yyyy");
                    dtgDetails.Rows[i].Cells[2].Value = row["FULL_NAME"].ToString();
                    dtgDetails.Rows[i].Cells[3].Value = float.Parse(row["TIEN_PHONG"].ToString()).ToString("#,##0.##");
                    dtgDetails.Rows[i].Cells[4].Value = row["SO_THANG"].ToString();
                    dtgDetails.Rows[i].Cells[5].Value = float.Parse(row["TIEN_DIEN"].ToString()).ToString("#,##0.##");
                    dtgDetails.Rows[i].Cells[6].Value = float.Parse(row["TIEN_NUOC"].ToString()).ToString("#,##0.##");
                    dtgDetails.Rows[i].Cells[7].Value = float.Parse(row["TIEN_PHU_THU"].ToString()).ToString("#,##0.##");
                    dtgDetails.Rows[i].Cells[8].Value = total.ToString("#,##0.##");
                    dtgDetails.Rows[i].Cells[10].Value = row["ID"].ToString();
                    dtgDetails.Rows[i].Cells[11].Value = row["NGUOI_THU"].ToString();
                    dtgDetails.Rows[i].Cells[12].Value = row["MAX_ID"].ToString();
                    if (i % 2 == 0)
                    {
                        dtgDetails.Rows[i].DefaultCellStyle.BackColor = Color.LightCyan;
                    }
                }
            }
        }

        private void dtgDetails_CellClick(object sender, DataGridViewCellEventArgs e)
        {
            if (e.RowIndex >= 0)
            {
                int id = int.Parse(dtgDetails.Rows[e.RowIndex].Cells[10].Value.ToString());
                int usrID = int.Parse(dtgDetails.Rows[e.RowIndex].Cells[11].Value.ToString());
                int maxId = int.Parse(dtgDetails.Rows[e.RowIndex].Cells[12].Value.ToString());
                if (e.ColumnIndex == 9)
                {
                    if (id == maxId)
                    {
                        if (usrID != LoginDao.userID)
                        {
                            Error er = new Error("Bạn không phải là người lập phiếu thu này. Bạn không có quyền xóa.");
                            er.ShowDialog();
                            er.Dispose();
                        }
                        else
                        {
                            Confirm f = new Confirm("Bạn muốn xóa phiếu thu này.");
                            f.ShowDialog();
                            if (f.IsAccept)
                            {
                                ThuePhongDao dao = new ThuePhongDao();
                                if (dao.huyThuTien(id))
                                {
                                    Result re = new Result("Hủy phiếu thu thành công.");
                                    re.ShowDialog();
                                    re.Dispose();
                                }
                                else
                                {
                                    Error er = new Error("Hủy thất bại.");
                                    er.ShowDialog();
                                    er.Dispose();
                                }
                            }
                            f.Dispose();
                        }
                    }
                    else
                    {
                        Error er = new Error("Đây không phải là phiếu thu mới nhất. Bạn chỉ được hủy phiếu thu mới nhất.");
                        er.ShowDialog();
                        er.Dispose();
                    }
                }
            }
            loadGrid(this.soHopDong);
        }
    }
}
